package com.aida.evil.eda.SQL.Eda_SQL;

import android.content.Context;

import com.aida.evil.eda.SQL.Eda_DataBaseHelper;
import com.j256.ormlite.android.apptools.OpenHelperManager;
import com.j256.ormlite.dao.RuntimeExceptionDao;

import java.util.List;

/****************************************************
 * com.aida.evil.eda.SQL.Eda_SQL
 * 作者：白雨濃  evil
 * 时间：16-3-22 07:24
 * 邮箱：evilbai@foxmail.com
 * 页面用途：用于保存Eda类中 的ListView内容 使用ORMLite
 ****************************************************/
public class Eda_Sql
{
    /*主要是处理了过多繁琐的try…catch…的书写，和一些语法错误带来的崩溃，建议使用。*/
    private RuntimeExceptionDao<Item, Integer> runtimeExceptionDao;
    private Eda_DataBaseHelper edaDataBaseHelper;
    private Context context;

    private Item item;


    public Eda_Sql(Context context)
    {
        this.context = context;
          /*获得runtimeExceptionDao从DataBaseHelper中*/
        runtimeExceptionDao = getHelper().getItemRuntimeExceptionDao();
    }


    private Eda_DataBaseHelper getHelper()
    {
        if (edaDataBaseHelper == null)
        {
            edaDataBaseHelper = OpenHelperManager.getHelper(context, Eda_DataBaseHelper.class);
        }
        return edaDataBaseHelper;
    }


    /**
     * 插入
     *
     * @param itemID
     * @param itemTitle
     * @param itemContxt
     */
    public void intsert(int id, int itemID, String itemTitle, String itemContxt)
    {
        item = new Item();
        item.setId(id);
        item.setItemID(itemID);
        item.setItemTitle(itemTitle);
        item.setItemContext(itemContxt);

        runtimeExceptionDao.createIfNotExists(item);//提交
    }

    /**
     * 更新数据（推荐使用）
     *
     * @param itemID
     * @param itemTitle
     * @param itemContxt
     */
    public void update(int id, int itemID, String itemImg, String itemTitle, String itemContxt)
    {
        item = new Item();

        item.setId(id);
        item.setItemID(itemID);
        item.setItemImg(itemImg);
        item.setItemTitle(itemTitle);
        item.setItemContext(itemContxt);

        runtimeExceptionDao.createOrUpdate(item);//新建或更新
    }

    /**
     * 删除所有
     */
    public int deleteAll()
    {
        return runtimeExceptionDao.delete(queryAll());
    }

    /**
     * 查询所有，返回Item数组
     *
     * @return
     */
    public List<Item> queryAll()
    {
        List<Item> items = runtimeExceptionDao.queryForAll();
        return items;
    }


    /*************************************内部类区域************************************************/


}
